package com.yunsom.testdemo.design.prototype;

import java.util.Hashtable;

/**
 * @author Xbao
 * @description
 * @date 2022/6/6 17:52
 */
public class ShapeCache {

  private static Hashtable<String,Shape> shapeMap = new Hashtable<>();

  public static Shape getShape(String id){
    Shape cachedShape = shapeMap.get(id);
    return (Shape) cachedShape.clone();
  }

  // 对每种形状都运行数据库查询，并创建该形状
  // shapeMap.put(shapeKey, shape);
  // 例如，我们要添加三种形状
  public static void loadCache(){
    Circle circle = new Circle();
    circle.setId("1");
    shapeMap.put(circle.getId(), circle);

    Square square = new Square();
    square.setId("2");
    shapeMap.put(square.getId(), square);

    Rectangle rectangle = new Rectangle();
    rectangle.setId("3");
    shapeMap.put(rectangle.getId(), rectangle);
  }

}
